package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.StringTokenizer;

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;


import vista.VentanaConsultarequipo;
import vista.VistaEquipo;
import modelo.Equipo;
import modelo.Nadador;
import modelo.Panamericano;


public class ControladorVistaequipo implements ActionListener{
	
	Equipo eqp;
	VistaEquipo ventana;
	String[] paises ={"Argentina","Brazil","Chile","Colombia","Canada","Mexico","Uruguay","Venezuela"};
	private ArrayList<Nadador> nadadores;
	private Panamericano panamericano;
	
	public ControladorVistaequipo (Panamericano panamericano)
	{
		this.nadadores = new ArrayList<Nadador>();
		ventana = new VistaEquipo();
		ventana.setLocationRelativeTo(null);
		ventana.setVisible(true);
		ventana.agregarlistener(this);
		ventana.setpais(paises);
		this.panamericano=panamericano;
		
	}
	
	private void agregarEquipo() {
try {
			
			String codigoEquipo = ventana.getcodigo();
			String paisRepresentante = ventana.getpais();
			int annoFundacionFerederacion = ventana.getanno();
			String nombreEntrenador = ventana.nombreentrenador();
			Equipo equipo = new Equipo(codigoEquipo,paisRepresentante,annoFundacionFerederacion,nombreEntrenador);
			
			String archivo,linea;
			StringTokenizer token;
			String cedula,nombre,apellido,fechaNacimiento,sexo,estiloEspecializado;
	
			archivo = ventana.getpais() +".txt";
			
		    File archivo_a_leer = new File(archivo);
		    Scanner leer;
			leer = new Scanner(archivo_a_leer);
			while (leer.hasNextLine() ) {  
	                            linea = leer.nextLine();
	                            token = new StringTokenizer(linea," ");
	                            cedula = token.nextToken();
	                            nombre = token.nextToken();
	                            apellido = token.nextToken();
	                            fechaNacimiento = token.nextToken();
	                            sexo = token.nextToken();
	                            estiloEspecializado = token.nextToken();
	                           
	                           
	                            Nadador nadador = new Nadador(cedula,nombre,apellido,fechaNacimiento,sexo,estiloEspecializado);
	                   
	                            equipo.agregarnadadores(nadador);
	                           
	                        
	                          
			}
			leer.close(); 
		//	ventana.blanquearCampos();
			panamericano.agregarequipo(equipo);
			
			ventana.imprimirmensaje("Listo!!! El Eqipo de natacion de: "+ventana.getpais()+" ha sido registrado");		

			
			
						
		}
		catch(Exception e) {
			// Mensaje de Dialogo en caso de que ocurra cualquier otra excepcion
			ventana.imprimirmensaje(e.toString());
			e.printStackTrace();
		}
	}
		
	 private void consultar(){
			String codigo;
			codigo= ventana.getcodigo(); 
			if(panamericano.getequipo().isEmpty()){
				ventana.imprimirmensaje("No hay equipos Registrados");
			}else{
				for(int i=0; i<panamericano.getequipo().size();i++ ){
					String codaux=panamericano.getequipo().get(i).getCodigoEquipo();
					if(codigo.equals(codaux)){
						String anno= String.valueOf(panamericano.getequipo().get(i).getAnnoFundacionFerederacion());
						ventana.setAnno(anno);
						String entrenador= panamericano.getequipo().get(i).getNombreEntrenador();
						ventana.setnombreentrenador(entrenador);
						return;
					}
				}
			}ventana.imprimirmensaje("Equipo No Registrado");
		}
			DefaultTableModel modeloTabla = new DefaultTableModel();
	JTable tablaNadadores = new JTable(modeloTabla);
	private void cargartabla(){
		 modeloTabla.setColumnCount(0);
		 modeloTabla.addColumn("Cedula");
		 modeloTabla.addColumn("Nombre");
		 modeloTabla.addColumn("Apellido");
		 modeloTabla.addColumn("Fecha de Nac");
		 modeloTabla.addColumn("Sexo");
		 modeloTabla.addColumn("Estilo");
		 modeloTabla.setNumRows(8);
		 
		 for(int i=0;i<panamericano.contarequipos();i++){
			 if(panamericano.getequipo().get(i).getPaisRepresentante().equals("Argentina")){
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getCedula(),i,0);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getNombre(), i, 1);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getApellido(), i, 2);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getFechaNacimiento(), i, 3);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getSexo(), i, 4);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getEstiloEspecializado(), i, 5);

			}else{
				if(panamericano.getequipo().get(i).getPaisRepresentante().equals("Brazil")){
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getCedula(),i,0);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getNombre(), i, 1);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getApellido(), i, 2);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getFechaNacimiento(), i, 3);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getSexo(), i, 4);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getEstiloEspecializado(), i, 5);
				 tablaNadadores.setModel(modeloTabla);
				 ventana.setListado(modeloTabla);
			}else{
				 if(panamericano.getequipo().get(i).getPaisRepresentante().equals("Canada")){
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getCedula(),i,0);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getNombre(), i, 1);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getApellido(), i, 2);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getFechaNacimiento(), i, 3);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getSexo(), i, 4);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getEstiloEspecializado(), i, 5);
				 tablaNadadores.setModel(modeloTabla);
				 ventana.setListado(modeloTabla);
			}else{
				 if(panamericano.getequipo().get(i).getPaisRepresentante().equals("Chile")){
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getCedula(),i,0);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getNombre(), i, 1);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getApellido(), i, 2);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getFechaNacimiento(), i, 3);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getSexo(), i, 4);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getEstiloEspecializado(), i, 5);
				 tablaNadadores.setModel(modeloTabla);
				 ventana.setListado(modeloTabla);
			}else{
				 if(panamericano.getequipo().get(i).getPaisRepresentante().equals("Colombia")){
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getCedula(),i,0);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getNombre(), i, 1);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getApellido(), i, 2);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getFechaNacimiento(), i, 3);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getSexo(), i, 4);
				 modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getEstiloEspecializado(), i, 5);
				 tablaNadadores.setModel(modeloTabla);
				 ventana.setListado(modeloTabla);
			}else{
				if(panamericano.getequipo().get(i).getPaisRepresentante().equals("Mexico")){
		    	modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getCedula(),i,0);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getNombre(), i, 1);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getApellido(), i, 2);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getFechaNacimiento(), i, 3);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getSexo(), i, 4);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getEstiloEspecializado(), i, 5);
				tablaNadadores.setModel(modeloTabla);
				ventana.setListado(modeloTabla);
			}else{
				if(panamericano.getequipo().get(i).getPaisRepresentante().equals("Uruguay")){
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getCedula(),i,0);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getNombre(), i, 1);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getApellido(), i, 2);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getFechaNacimiento(), i, 3);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getSexo(), i, 4);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getEstiloEspecializado(), i, 5);
				tablaNadadores.setModel(modeloTabla);
				ventana.setListado(modeloTabla);
			}else{
			    if(panamericano.getequipo().get(i).getPaisRepresentante().equals("Venezuela")){
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getCedula(),i,0);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getNombre(), i, 1);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getApellido(), i, 2);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getFechaNacimiento(), i, 3);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getSexo(), i, 4);
				modeloTabla.setValueAt(panamericano.getequipo().get(i).getNadadores().get(i).getEstiloEspecializado(), i, 5);
				tablaNadadores.setModel(modeloTabla);
				ventana.setListado(modeloTabla);
			}
		}
		}
	}
	}
				 tablaNadadores.setModel(modeloTabla);
				 ventana.setListado(modeloTabla);
	}
	}
	}
		}
	}
	    

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		String comando = e.getActionCommand();
		if (comando.equals("Limpiar"))
		{
			ventana.blanquearCampos();
		}
		if (comando.equals("Guardar"))
		{
			agregarEquipo();
		}
	
		else if (comando.equals("Consultar")){
			consultar();
			cargartabla();
		}
		else if (comando.equals("Limpiar")){
			ventana.blanquearCampos();
		}
	}

	
}
